package pe.tnova.cliente.proyecto.core.dominio;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import pe.tnova.core.db.Entidad;
@Entity
@Table(name = "Parametro")
public class Parametro implements Entidad{

	
	@Id
//	@GeneratedValue(strategy = GenerationType.TABLE, generator = "id_Generator")
//	@TableGenerator(name = "id_Generator", table = "sequence_table", pkColumnName = "sequence_name", valueColumnName = "sequence_value")
	//@GeneratedValue(strategy = GenerationType.AUTO)
	@GeneratedValue(strategy=GenerationType.AUTO, generator="PARAMETRO_SEQ")
	@SequenceGenerator(name="PARAMETRO_SEQ", sequenceName="PARAMETRO_SEQ")	
	@Column(name = "PARAM_ID")
	private Long id;

	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name = "PARAM_ID_PADRE")
	private Parametro parametroPadre;
	
	@Column(name = "PARAM_NOMBRE",nullable=false)
	private String nombre;
	
	@Column(name = "PARAM_VALUE",nullable=false)
	private String value;
	
	@Column(name = "PARAM_ACTIVO")
	private Boolean activo;
	
	@Column(name = "PARAM_CODIGOUSUARIO")
	private String codigoUsuario;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "PARAM_FECHA_REGISTRO")
	private Date fechaRegistro;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "PARAM_FECHA_ACTUALIZADA")
	private Date fechaActualizada;
	
	public Parametro() {
	}

	public String getCodigoUsuario() {
		return codigoUsuario;
	}

	public void setCodigoUsuario(String codigoUsuario) {
		this.codigoUsuario = codigoUsuario;
	}



	public Boolean getActivo() {
		return activo;
	}



	public void setActivo(Boolean activo) {
		this.activo = activo;
	}





	public Long getId() {
		return id;
	}


	public void setId(Long id) {
		this.id = id;
	}



	public Date getFechaRegistro() {
		return fechaRegistro;
	}


	public void setFechaRegistro(Date fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}


	public Date getFechaActualizada() {
		return fechaActualizada;
	}


	public void setFechaActualizada(Date fechaActualizada) {
		this.fechaActualizada = fechaActualizada;
	}


	

	public Parametro getParametroPadre() {
		return parametroPadre;
	}

	public void setParametroPadre(Parametro parametroPadre) {
		this.parametroPadre = parametroPadre;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}

	public String getCodigo() {
		// TODO Auto-generated method stub
		return null;
	}


	public String getNombreCompleto() {
		// TODO Auto-generated method stub
		return null;
	}


	

}
